home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / parser.jar / com / sun / xml / tree / TextNode.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-02-23  |  2.4 KB  |  96 lines

  1. package com.sun.xml.tree;
  2.  
  3. import java.io.IOException;
  4. import java.io.Writer;
  5. import org.w3c.dom.DOMException;
  6. import org.w3c.dom.Node;
  7. import org.w3c.dom.Text;
  8.  
  9. class TextNode extends DataNode implements Text {
  10.    public TextNode() {
  11.    }
  12.  
  13.    public TextNode(String var1) {
  14.       super(var1);
  15.    }
  16.  
  17.    public TextNode(char[] var1, int var2, int var3) {
  18.       super(var1, var2, var3);
  19.    }
  20.  
  21.    public Node cloneNode(boolean var1) {
  22.       TextNode var2 = new TextNode(super.data, 0, super.data.length);
  23.       ((NodeBase)var2).setOwnerDocument((XmlDocument)((NodeBase)this).getOwnerDocument());
  24.       return var2;
  25.    }
  26.  
  27.    public String getNodeName() {
  28.       return "#text";
  29.    }
  30.  
  31.    public short getNodeType() {
  32.       return 3;
  33.    }
  34.  
  35.    public void joinNextText() {
  36.       Node var1 = ((NodeBase)this).getNextSibling();
  37.       if (var1 != null && var1.getNodeType() == 3) {
  38.          ((NodeBase)this).getParentNode().removeChild(var1);
  39.          char[] var3 = ((TextNode)var1).getText();
  40.          char[] var2 = new char[super.data.length + var3.length];
  41.          System.arraycopy(super.data, 0, var2, 0, super.data.length);
  42.          System.arraycopy(var3, 0, var2, super.data.length, var3.length);
  43.          super.data = var2;
  44.       }
  45.    }
  46.  
  47.    public Text splitText(int var1) throws DOMException {
  48.       if (((NodeBase)this).isReadonly()) {
  49.          throw new DomEx((short)7);
  50.       } else {
  51.          TextNode var2;
  52.          try {
  53.             var2 = new TextNode(super.data, var1, super.data.length - var1);
  54.          } catch (ArrayIndexOutOfBoundsException var4) {
  55.             throw new DomEx((short)1);
  56.          } catch (NegativeArraySizeException var5) {
  57.             throw new DomEx((short)1);
  58.          }
  59.  
  60.          ((NodeBase)this).getParentNode().insertBefore(var2, ((NodeBase)this).getNextSibling());
  61.          char[] var3 = new char[var1];
  62.          System.arraycopy(super.data, 0, var3, 0, var1);
  63.          super.data = var3;
  64.          return var2;
  65.       }
  66.    }
  67.  
  68.    public void writeXml(XmlWriteContext var1) throws IOException {
  69.       Writer var2 = var1.getWriter();
  70.       int var3 = 0;
  71.       int var4 = 0;
  72.       if (super.data == null) {
  73.          System.err.println("Null text data??");
  74.       } else {
  75.          for(; var4 < super.data.length; ++var4) {
  76.             char var5 = super.data[var4];
  77.             if (var5 == '<') {
  78.                var2.write(super.data, var3, var4 - var3);
  79.                var3 = var4 + 1;
  80.                var2.write("<");
  81.             } else if (var5 == '>') {
  82.                var2.write(super.data, var3, var4 - var3);
  83.                var3 = var4 + 1;
  84.                var2.write(">");
  85.             } else if (var5 == '&') {
  86.                var2.write(super.data, var3, var4 - var3);
  87.                var3 = var4 + 1;
  88.                var2.write("&");
  89.             }
  90.          }
  91.  
  92.          var2.write(super.data, var3, var4 - var3);
  93.       }
  94.    }
  95. }
  96.